
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
 */
package itm.dao.administracion;

//~--- non-JDK imports --------------------------------------------------------

import itm.exception.ControlException;

import itm.vo.administracion.TipoVO;

//~--- JDK imports ------------------------------------------------------------

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author BISA20
 */
public class TipoDAO {
    private CallableStatement callStmt = null;
    private ResultSet         res      = null;
    private String            sql      = "";
    String                    temp     = "";
    Connection                dbConexion;

    public TipoDAO(Connection dbConexion) {
        this.dbConexion = dbConexion;
    }

    public String crearTipoProyecto(TipoVO tipoVO) throws ControlException, SQLException {
        String temp = "";

        try {
            sql      = "{call ITM_CREAR_TIPO_PROYECTO(?,?)}";
            callStmt = (CallableStatement) dbConexion.prepareCall(sql);
            callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
            callStmt.setString(2, tipoVO.getNombreTipoProyecto());
            callStmt.execute();
            temp = callStmt.getString(1);

            String qq = temp;
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return temp;
    }

    public String crearTipoProducto(TipoVO tipoVO) throws ControlException, SQLException {
        String temp = "";

        try {
            sql      = "{call ITM_CREAR_TIPO_PRODUCTO(?,?)}";
            callStmt = (CallableStatement) dbConexion.prepareCall(sql);
            callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
            callStmt.setString(2, tipoVO.getNombreTipoProducto());
            callStmt.execute();
            temp = callStmt.getString(1);

            String qq = temp;
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return temp;
    }

    public List<TipoVO> consultarTipoProyecto(TipoVO tipoVO) throws ControlException, SQLException {
        List<TipoVO> listaTipoProyecto = new ArrayList<TipoVO>();

        try {
            sql      = "{call ITM_CONSULTAR_TIPO_PROYECTO(?)}";
            callStmt = dbConexion.prepareCall(sql);
            callStmt.setString(1, tipoVO.getNombreTipoProyecto());
            res = callStmt.executeQuery();

            while (res.next()) {
                tipoVO = new TipoVO();
                tipoVO.setNombreTipoProyecto(res.getString(1));
                tipoVO.setIdTipoProyecto(res.getString(2));
                listaTipoProyecto.add(tipoVO);
            }
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return listaTipoProyecto;
    }

    public List<TipoVO> consultarTipoProducto(TipoVO tipoVO) throws ControlException, SQLException {
        List<TipoVO> listaTipoProducto = new ArrayList<TipoVO>();

        try {
            sql      = "{call ITM_CONSULTAR_TIPO_PRODUCTO(?)}";
            callStmt = dbConexion.prepareCall(sql);
            callStmt.setString(1, tipoVO.getNombreTipoProducto());
            res = callStmt.executeQuery();

            while (res.next()) {
                tipoVO = new TipoVO();
                tipoVO.setNombreTipoProducto(res.getString(1));
                tipoVO.setIdTipoProducto(res.getString(2));
                listaTipoProducto.add(tipoVO);
            }
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return listaTipoProducto;
    }

    public String eliminarTipoProyecto(TipoVO tipoVO) throws ControlException, SQLException {
        try {
            sql      = "{call ITM_ELIMINAR_TIPO_PROYECTO(?,?)}";
            callStmt = (CallableStatement) dbConexion.prepareCall(sql);
            callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
            callStmt.setString(2, tipoVO.getNombreTipoProyecto());
            callStmt.execute();
            temp = callStmt.getString(1);
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return temp;
    }

    public String eliminarTipoProducto(TipoVO tipoVO) throws ControlException, SQLException {
        String temp = "";

        try {
            sql      = "{call ITM_ELIMINAR_TIPO_PRODUCTO(?,?)}";
            callStmt = (CallableStatement) dbConexion.prepareCall(sql);
            callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
            callStmt.setString(2, tipoVO.getNombreTipoProducto());
            callStmt.execute();
            temp = callStmt.getString(1);
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return temp;
    }

    public String actualizarTipoProyecto(TipoVO tipoVO) throws ControlException, SQLException {
        String temp = "";

        try {
            sql      = "{call ITM_ACTUALIZAR_TIPO_PROYECTO(?,?,?)}";
            callStmt = (CallableStatement) dbConexion.prepareCall(sql);
            callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
            callStmt.setString(2, tipoVO.getIdTipoProyecto());
            callStmt.setString(3, tipoVO.getNombreTipoProyecto());
            callStmt.execute();
            temp = callStmt.getString(1);
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return temp;
    }

    public String actualizarTipoProducto(TipoVO tipoVO) throws ControlException, SQLException {
        String temp = "";

        try {
            sql      = "{call ITM_ACTUALIZAR_TIPO_PRODUCTO(?,?,?)}";
            callStmt = (CallableStatement) dbConexion.prepareCall(sql);
            callStmt.registerOutParameter(1, java.sql.Types.VARCHAR);
            callStmt.setString(2, tipoVO.getIdTipoProducto());
            callStmt.setString(3, tipoVO.getNombreTipoProducto());
            callStmt.execute();
            temp = callStmt.getString(1);

            String qq = temp;
        } catch (SQLException ce) {
            ce.getStackTrace();
        }

        return temp;
    }
}
